package org.xworker.meta_weave;

import org.xmeta.World;
import xworker.lang.executor.Executor;
import xworker.lang.util.XWorkerUtils;
import xworker.swt.SwtThingEditor;
import xworker.webserver.XWorkerWebServer;

import java.io.File;

public class MetaWeaveThingEditor {
    private static final String TAG = MetaWeaveThingEditor.class.getName();

    public static void main(String[] args){
        try{
            //获得动态模型引擎的实例
            World world = World.getInstance();
            //初始化引擎的工作目录，可能会生成一些临时文件，该目录要可写
            world.init("./xworker/");

            //添加模型管理器，即模型存放的目录，编辑模型需要。Test是模型管理器的名字，不能和其它模型管理重复。
            world.addFileThingManager("MetaWeave", new File("./src/main/resources"), false, true);
            //模型可以放到Java源码目录下，模型可以和Java一起编译和打包，不过在jar中的模型一般是只读的

            //检查是否需要初始化，比如依赖模型库更新了重新建立索引
            XWorkerUtils.setup(false);

            //运行Web服务器和模型编辑器
            XWorkerWebServer.run();
            SwtThingEditor.run();
        }catch(Exception e){
            Executor.warn(TAG, "Rap thing editor exception", e);
        }
        System.exit(0);
    }
}
